import datetime
now = datetime.datetime.now()
print ("Última versión:")
print (now.strftime("%Y-%m-%d %H:%M:%S"))
import pandas as pd
import numpy as np
import pandas_profiling
from itertools import combinations
from dateutil.parser import parse
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import seaborn as sns
import plotly
import plotly.express as px
#se define diccionario de colores
colors = dict({'G0':'blue',
'G1':'green',
'G2': 'orange',
'G3': 'grey',
'G4': 'red',
'G5': 'magenta'})
#se carga el dataframe con los resultados de 6 indicadores (todos los PCA considerados en k-medias):
resultados_ind6 = pd.read_csv("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/3_Agrupamiento-Kmeans/Resultados_Secc_Indic_PCA_Kmeans_Atip_ind6.csv", dtype={'EDO':int,'MUN':int})
#se carga el dataframe con los resultados de 6 indicadores, con log en LNE y Densidad_LNE (todos los PCA considerados en k-medias):
resultados_ind6_tf = pd.read_csv("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/3_Agrupamiento-Kmeans/Resultados_Secc_Indic_PCA_Kmeans_Atip_ind6_tf.csv", dtype={'EDO':int,'MUN':int})
#se aplica np.exp rn LNE y Densidad_LNE para volver a las magnitudes originales
#resultados_ind6_tf['log(LNE)'] = np.exp(resultados_ind6_tf['log(LNE)'])
resultados_ind6_tf['log(Densidad_LNE)'] = np.exp(resultados_ind6_tf['log(Densidad_LNE)'])
#renombramos algunas columnas
resultados_ind6_tf=resultados_ind6_tf.rename(columns={"log(LNE)": "LNE", "log(Densidad_LNE)": "Densidad_LNE"})
resultados_ind6_tf
#se carga el dataframe con los resultados de 7 indicadores (todos los PCA considerados en k-medias):
resultados_ind7 = pd.read_csv("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/3_Agrupamiento-Kmeans/Resultados_Secc_Indic_PCA_Kmeans_Atip_ind7.csv", dtype={'EDO':int,'MUN':int})
#se carga el dataframe con los resultados de 7 indicadores, con log en LNE y Densidad_LNE (todos los PCA considerados en k-medias):
resultados_ind7_tf = pd.read_csv("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/3_Agrupamiento-Kmeans/Resultados_Secc_Indic_PCA_Kmeans_Atip_ind7_tf.csv", dtype={'EDO':int,'MUN':int})
#se aplica np.exp rn LNE y Densidad_LNE para volver a las magnitudes originales
resultados_ind7_tf['log(LNE)'] = np.exp(resultados_ind7_tf['log(LNE)'])
resultados_ind7_tf['log(Densidad_LNE)'] = np.exp(resultados_ind7_tf['log(Densidad_LNE)'])
#renombramos algunas columnas
resultados_ind7_tf=resultados_ind7_tf.rename(columns={"log(LNE)": "LNE", "log(Densidad_LNE)": "Densidad_LNE"})
resultados_ind7_tf
#con pandas_profiling se crea una interface para visualizar un resumen del dataframe de los resultados
#resultados_ind6.profile_report()
#se ordenan y obtienen las 10 secciones por nivel de complejidad (descendente en CP1)
ranking_secc_top10_ind6 = resultados_ind6.sort_values(by='CP1 (ICE principal)', ascending=False).head(10)
#se guarda el ranking
ranking_secc_top10_ind6.to_csv(r'Resultados_Secc_ranking-top10_ind6.csv', index = None)
ranking_secc_top10_ind6
#se obtienen las secciones de mayor complejidad (mayor CP1) para cada una de las 32 entidades
idx_rank_secc_ind6 = resultados_ind6.groupby(['EDO'])['CP1 (ICE principal)'].transform(max) == resultados_ind6['CP1 (ICE principal)']
ranking_secc_edo_ind6 = resultados_ind6[idx_rank_secc_ind6]
ranking_secc_edo_ind6.to_csv(r'Resultados_Secc_ranking-edo_ind6.csv', index = None)
ranking_secc_edo_ind6
Animación de la proyección de las secciones en el espacio de las CP (tipología en color):
eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO','DTO','LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'Atipicidad']
#3-d scatter plot con plotly
fig = px.scatter_3d(resultados_ind6,
x='CP1 (ICE principal)',
y='CP2 (segundo ICE)',
z='CP3 (tercer ICE)',
color='TCE_seccional',
color_discrete_map={
'G0':'blue',
'G1':'green',
'G2': 'orange',
'G3': 'grey'},
hover_name='SECC',
hover_data = eti)
fig.update_traces(mode='markers', marker_line_width=1, marker_size=3)
fig.update_layout(scene = dict(
xaxis_title='CP1 (ICE principal)',
yaxis_title='CP2 (segundo ICE)',
zaxis_title='CP3 (tercer ICE)'),
title="Proyección de las secciones electorales en el espacio CP1-CP2-CP3 (6 indicadores)",
legend_orientation="h")
#fig.show()
#salvar animación en html
fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_Proyeccion3d_Secc_ind6.html")
Animación de la proyección de las secciones en el espacio de las CP (atipicidad en color):
eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO','DTO', 'LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'TCE_seccional']
#3-d scatter plot con plotly
fig = px.scatter_3d(resultados_ind6,
x='CP1 (ICE principal)',
y='CP2 (segundo ICE)',
z='CP3 (tercer ICE)',
color='Atipicidad',
hover_name='SECC',
hover_data = eti)
fig.update_traces(mode='markers', marker_line_width=1, marker_size=3)
fig.update_layout(scene = dict(
xaxis_title='CP1 (ICE principal)',
yaxis_title='CP2 (segundo ICE)',
zaxis_title='CP3 (tercer ICE)'),
title="Proyección de las secciones electorales en el espacio CP1-CP2-CP3 (6 indicadores)",
legend_orientation="h")
#fig.show()
#salvar animación en html
fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_Proyeccion3d_Secc_Atip_ind6.html")
#con pandas_profiling se crea una interface para visualizar un resumen del dataframe de los resultados
#resultados_ind6_tf.profile_report()
#se ordenan y obtienen las 10 secciones por nivel de complejidad (descendente en CP1)
ranking_secc_top10_ind6_tf = resultados_ind6_tf.sort_values(by='CP1 (ICE principal)', ascending=False).head(10)
#se guarda el ranking
ranking_secc_top10_ind6_tf.to_csv(r'Resultados_Secc_ranking-top10_ind6_tf.csv', index = None)
ranking_secc_top10_ind6_tf
#se obtienen las secciones de mayor complejidad (mayor CP1) para cada una de las 32 entidades
idx_rank_secc_ind6_tf = resultados_ind6_tf.groupby(['EDO'])['CP1 (ICE principal)'].transform(max) == resultados_ind6_tf['CP1 (ICE principal)']
ranking_secc_edo_ind6_tf = resultados_ind6_tf[idx_rank_secc_ind6_tf]
ranking_secc_edo_ind6_tf.to_csv(r'Resultados_Secc_ranking-edo_ind6_tf.csv', index = None)
ranking_secc_edo_ind6_tf
Animación de la proyección de las secciones en el espacio de las CP (tipología en color):
eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO','DTO','LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'Atipicidad']
#3-d scatter plot con plotly
fig = px.scatter_3d(resultados_ind6_tf,
x='CP1 (ICE principal)',
y='CP2 (segundo ICE)',
z='CP3 (tercer ICE)',
color='TCE_seccional',
color_discrete_map={
'G0':'blue',
'G1':'green',
'G2': 'orange',
'G3': 'grey'},
hover_name='SECC',
hover_data = eti)
fig.update_traces(mode='markers', marker_line_width=1, marker_size=3)
fig.update_layout(scene = dict(
xaxis_title='CP1 (ICE principal)',
yaxis_title='CP2 (segundo ICE)',
zaxis_title='CP3 (tercer ICE)'),
title="Proyección de las secciones electorales en el espacio CP1-CP2-CP3 (6 indicadores, con transformación log en LNE y Densidad_LNE)",
legend_orientation="h")
#fig.show()
#salvar animación en html
fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_Proyeccion3d_Secc_ind6_tf.html")
Animación de la proyección de las secciones en el espacio de las CP (atipicidad en color):
eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO','DTO', 'LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'TCE_seccional']
#3-d scatter plot con plotly
fig = px.scatter_3d(resultados_ind6_tf,
x='CP1 (ICE principal)',
y='CP2 (segundo ICE)',
z='CP3 (tercer ICE)',
color='Atipicidad',
hover_name='SECC',
hover_data = eti)
fig.update_traces(mode='markers', marker_line_width=1, marker_size=3)
fig.update_layout(scene = dict(
xaxis_title='CP1 (ICE principal)',
yaxis_title='CP2 (segundo ICE)',
zaxis_title='CP3 (tercer ICE)'),
title="Proyección de las secciones electorales en el espacio CP1-CP2-CP3 (6 indicadores, con transformación log en LNE y Densidad_LNE)",
legend_orientation="h")
#fig.show()
#salvar animación en html
fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_Proyeccion3d_Secc_Atip_ind6_tf.html")
#con pandas_profiling se crea una interface para visualizar un resumen del dataframe de los resultados
#resultados_ind7.profile_report()
#se ordenan y obtienen las 10 secciones por nivel de complejidad (descendente en CP1)
ranking_secc_top10_ind7 = resultados_ind7.sort_values(by='CP1 (ICE principal)', ascending=False).head(10)
#se guarda el ranking
ranking_secc_top10_ind7.to_csv(r'Resultados_Secc_ranking-top10_ind7.csv', index = None)
ranking_secc_top10_ind7
#se obtienen las secciones de mayor complejidad (mayor CP1) para cada una de las 32 entidades
idx_rank_secc_ind7 = resultados_ind7.groupby(['EDO'])['CP1 (ICE principal)'].transform(max) == resultados_ind7['CP1 (ICE principal)']
ranking_secc_edo_ind7 = resultados_ind7[idx_rank_secc_ind7]
ranking_secc_edo_ind7.to_csv(r'Resultados_Secc_ranking-edo_ind7.csv', index = None)
ranking_secc_edo_ind7
Animación de la proyección de las secciones en el espacio de las CP (tipología en color):
eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO','DTO','LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'Atipicidad']
#3-d scatter plot con plotly
fig = px.scatter_3d(resultados_ind7,
x='CP1 (ICE principal)',
y='CP2 (segundo ICE)',
z='CP3 (tercer ICE)',
color='TCE_seccional',
color_discrete_map={
'G0':'blue',
'G1':'green',
'G2': 'orange',
'G3': 'grey'},
hover_name='SECC',
hover_data = eti)
fig.update_traces(mode='markers', marker_line_width=1, marker_size=3)
fig.update_layout(scene = dict(
xaxis_title='CP1 (ICE principal)',
yaxis_title='CP2 (segundo ICE)',
zaxis_title='CP3 (tercer ICE)'),
title="Proyección de las secciones electorales en el espacio CP1-CP2-CP3 (7 indicadores)",
legend_orientation="h")
#fig.show()
#salvar animación en html
fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_Proyeccion3d_Secc_ind7.html")
Animación de la proyección de las secciones en el espacio de las CP (atipicidad en color):
eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO','DTO', 'LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'TCE_seccional']
#3-d scatter plot con plotly
fig = px.scatter_3d(resultados_ind7,
x='CP1 (ICE principal)',
y='CP2 (segundo ICE)',
z='CP3 (tercer ICE)',
color='Atipicidad',
hover_name='SECC',
hover_data = eti)
fig.update_traces(mode='markers', marker_line_width=1, marker_size=3)
fig.update_layout(scene = dict(
xaxis_title='CP1 (ICE principal)',
yaxis_title='CP2 (segundo ICE)',
zaxis_title='CP3 (tercer ICE)'),
title="Proyección de las secciones electorales en el espacio CP1-CP2-CP3 (7 indicadores)",
legend_orientation="h")
#fig.show()
#salvar animación en html
fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_Proyeccion3d_Secc_Atip_ind7.html")
#con pandas_profiling se crea una interface para visualizar un resumen del dataframe de los resultados
#resultados_ind7_tf.profile_report()
#se ordenan y obtienen las 10 secciones por nivel de complejidad (descendente en CP1)
ranking_secc_top10_ind7_tf = resultados_ind7_tf.sort_values(by='CP1 (ICE principal)', ascending=False).head(10)
#se guarda el ranking
ranking_secc_top10_ind7_tf.to_csv(r'Resultados_Secc_ranking-top10_ind7_tf.csv', index = None)
ranking_secc_top10_ind7_tf
#se obtienen las secciones de mayor complejidad (mayor CP1) para cada una de las 32 entidades
idx_rank_secc = resultados_ind7_tf.groupby(['EDO'])['CP1 (ICE principal)'].transform(max) == resultados_ind7_tf['CP1 (ICE principal)']
ranking_secc_edo_tf = resultados_ind7_tf[idx_rank_secc]
ranking_secc_edo_tf.to_csv(r'Resultados_Secc_ranking-edo_ind7_tf.csv', index = None)
ranking_secc_edo_tf
Animación de la proyección de las secciones en el espacio de las CP (tipología en color):
eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO','DTO', 'LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'Atipicidad']
#3-d scatter plot con plotly
fig = px.scatter_3d(resultados_ind7_tf,
x='CP1 (ICE principal)',
y='CP2 (segundo ICE)',
z='CP3 (tercer ICE)',
color='TCE_seccional',
color_discrete_map={
'G0':'blue',
'G1':'green',
'G2': 'orange',
'G3': 'grey'},
hover_name='SECC',
hover_data = eti)
fig.update_traces(mode='markers', marker_line_width=1, marker_size=3)
fig.update_layout(scene = dict(
xaxis_title='CP1 (ICE principal)',
yaxis_title='CP2 (segundo ICE)',
zaxis_title='CP3 (tercer ICE)'),
title="Proyección de las secciones electorales en el espacio CP1-CP2-CP3 (7 indicadores, con transformación log en LNE y Densidad_LNE)",
legend_orientation="h")
#fig.show()
#salvar animación en html
fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_Proyeccion3d_Secc_ind7_tf.html")
Animación de la proyección de las secciones en el espacio de las CP (atipicidad en color):
eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO','DTO', 'LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'TCE_seccional']
#3-d scatter plot con plotly
fig = px.scatter_3d(resultados_ind7_tf,
x='CP1 (ICE principal)',
y='CP2 (segundo ICE)',
z='CP3 (tercer ICE)',
color='Atipicidad',
hover_name='SECC',
hover_data = eti)
fig.update_traces(mode='markers', marker_line_width=1, marker_size=3)
fig.update_layout(scene = dict(
xaxis_title='CP1 (ICE principal)',
yaxis_title='CP2 (segundo ICE)',
zaxis_title='CP3 (tercer ICE)'),
title="Proyección de las secciones electorales en el espacio CP1-CP2-CP3 (7 indicadores, con transformación log en LNE y Densidad_LNE)",
legend_orientation="h")
#fig.show()
#salvar animación en html
fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_Proyeccion3d_Secc_Atip_ind7_tf.html")
import geopandas as gpd
#se carga la cartografía de secciones (shapefile)
fp = "C:/Users/miguel.alvarez/Google Drive/Cartografias/Cartografia INE/UNION_SECCIONES.shp"
mapa_secc = gpd.read_file(fp)
#type(mapa_secc)
mapa_secc
#se cambia la columna id con la concatenación de entidad+municipio
mapa_secc["ID"] = mapa_secc["ENTIDAD"].astype(str) + mapa_secc["MUNICIPIO"].astype(str) + mapa_secc["SECCION"].astype(str)
mapa_secc
#muestra de la cartografía de SECCIONES
plt.rcParams['figure.figsize'] = [50, 70]
mapa_secc.plot(edgecolor='black')
#se guarda shapefile en geojson
#mapa_secc.to_file("secciones.geojson", driver='GeoJSON')
#se carga la cartografía de estados (shapefile)
fp2 = "C:/Users/miguel.alvarez/Google Drive/Cartografias/Cartografia INE/entidad.shp"
mapa_edo = gpd.read_file(fp2)
#type(mapa_edo)
mapa_edo["id"] = mapa_edo["entidad"].astype(str)
mapa_edo.head()
#muestra de la cartografía de estados
plt.rcParams['figure.figsize'] = [50, 70]
mapa_edo.plot(edgecolor='black')
#se agrega una column id a resultados_ind6
resultados_ind6["ID"] = resultados_ind6["EDO"].astype(str) + resultados_ind6["MUN"].astype(str) + resultados_ind6["SECC"].astype(str)
#se une con mapa_secc
mapa_secc_ind6 = mapa_secc.merge(resultados_ind6, how='inner',on=['ID'])
mapa_secc_ind6
#mapa tipología
base = mapa_edo.plot(facecolor="none", edgecolor='black')
mapa_secc_ind6.plot(ax=base,
column='TCE_seccional',
categorical=True,
edgecolor='white',
legend=True).set_ylim([1500000, 3750000])
plt.savefig('Pyplotly_Mapa_Secc_TCE_ind6.png', dpi=400, bbox_inches='tight')
#mapa secciones atípicas
base = mapa_edo.plot(facecolor="none", edgecolor='black')
mapa_secc_ind6.plot(ax=base,
column='Atipicidad',
categorical=True,
edgecolor='white',
legend=True).set_ylim([1500000, 3750000])
plt.savefig('Pyplotly_Mapa_Secc_Atip_ind6.png', dpi=400, bbox_inches='tight')
#se agrega una column id a resultados ind6_tf
resultados_ind6_tf["ID"] = resultados_ind6_tf["EDO"].astype(str) + resultados_ind6_tf["MUN"].astype(str) + resultados_ind6_tf["SECC"].astype(str)
#se une con mapa_secc
mapa_secc_ind6_tf = mapa_secc.merge(resultados_ind6_tf, how='inner',on=['ID'])
mapa_secc_ind6_tf.head()
#mapa tipología
base = mapa_edo.plot(facecolor="none", edgecolor='black')
mapa_secc_ind6_tf.plot(ax=base,
column='TCE_seccional',
categorical=True,
edgecolor='white',
legend=True).set_ylim([1500000, 3750000])
plt.savefig('Pyplotly_Mapa_Secc_TCE_ind6_tf.png', dpi=400, bbox_inches='tight')
#mapa secciones atípicas
base = mapa_edo.plot(facecolor="none", edgecolor='black')
mapa_secc_ind6_tf.plot(ax=base,
column='Atipicidad',
categorical=True,
edgecolor='white',
legend=True).set_ylim([1500000, 3750000])
plt.savefig('Pyplotly_Mapa_Secc_Atip_ind6_tf.png', dpi=400, bbox_inches='tight')
#se agrega una column id a resultados_ind7
resultados_ind7["ID"] = resultados_ind7["EDO"].astype(str) + resultados_ind7["MUN"].astype(str) + resultados_ind7["SECC"].astype(str)
#se une con mapa_secc
mapa_secc_ind7 = mapa_secc.merge(resultados_ind7, how='inner',on=['ID'])
mapa_secc_ind7
#mapa tipología
base = mapa_edo.plot(facecolor="none", edgecolor='black')
mapa_secc_ind7.plot(ax=base,
column='TCE_seccional',
categorical=True,
edgecolor='white',
legend=True).set_ylim([1500000, 3750000])
plt.savefig('Pyplotly_Mapa_Secc_TCE_ind7.png', dpi=400, bbox_inches='tight')
#mapa secciones atípicas
base = mapa_edo.plot(facecolor="none", edgecolor='black')
mapa_secc_ind7.plot(ax=base,
column='Atipicidad',
categorical=True,
edgecolor='white',
legend=True).set_ylim([1500000, 3750000])
plt.savefig('Pyplotly_Mapa_Secc_Atip_ind7.png', dpi=400, bbox_inches='tight')
#se agrega una column id a resultados_ind7
resultados_ind7_tf["ID"] = resultados_ind7_tf["EDO"].astype(str) + resultados_ind7_tf["MUN"].astype(str) + resultados_ind7_tf["SECC"].astype(str)
#se une con mapa_secc
mapa_secc_ind7_tf = mapa_secc.merge(resultados_ind7_tf, how='inner',on=['ID'])
mapa_secc_ind7_tf.head()
#mapa tipología
base = mapa_edo.plot(facecolor="none", edgecolor='black')
mapa_secc_ind7_tf.plot(ax=base,
column='TCE_seccional',
categorical=True,
edgecolor='white',
legend=True).set_ylim([1500000, 3750000])
plt.savefig('Pyplotly_Mapa_Secc_TCE_ind7_tf.png', dpi=400, bbox_inches='tight')
#mapa secciones atípicas
base = mapa_edo.plot(facecolor="none", edgecolor='black')
mapa_secc_ind7_tf.plot(ax=base,
column='Atipicidad',
categorical=True,
edgecolor='white',
legend=True).set_ylim([1500000, 3750000])
plt.savefig('Pyplotly_Mapa_Secc_Atip_ind7_tf.png', dpi=400, bbox_inches='tight')
# import json
# with open('C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/secciones.geojson') as f:
# secciones_s = json.load(f)
#print(secciones_s["features"][0])
#print(secciones_s["features"][0]["properties"])
#secciones_s
#mapa de TCE
# eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO','DTO', 'LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'TCE_seccional', 'Atipicidad']
# fig = px.choropleth(resultados_ind7, geojson=secciones_s,
# locations='ID', featureidkey="properties.id",
# color='TCE_seccional',
# color_discrete_map={
# 'G0':'blue',
# 'G1':'green',
# 'G2': 'orange',
# 'G3': 'grey'},
# hover_name='SECC',
# hover_data = eti,
# title = 'TCE seccional (7 indicadores)')
# fig.update_geos(fitbounds="locations",
# visible=False,
# showcountries=True,
# countrycolor="Black", showsubunits=True,
# subunitcolor="Blue")
# fig.show()
# fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_mapa_secc_ind7.html")
#mapa de atipicidad
# eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO', 'DTO','LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'TCE_seccional', 'Atipicidad']
# fig = px.choropleth(resultados_ind7, geojson=secciones_s,
# locations='ID', featureidkey="properties.id",
# color='Atipicidad',
# color_discrete_sequence= px.colors.sequential.Reds,
# hover_name='SECC',
# hover_data = eti,
# title = 'Mapa secciones electorales atípicas (7 indicadores)')
# fig.update_geos(fitbounds="locations",
# visible=True,
# showcountries=True,
# countrycolor="Black",
# showsubunits=True,
# subunitcolor="Blue")
# fig.show()
# fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_mapa_secc_Atip_ind7.html")
#mapa de TCE
# eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO', 'DTO','LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'TCE_seccional', 'Atipicidad']
# fig = px.choropleth(resultados_ind7_tf, geojson=secciones_s,
# locations='ID', featureidkey="properties.id",
# color='TCE_seccional',
# color_discrete_map={
# 'G0':'blue',
# 'G1':'green',
# 'G2': 'orange',
# 'G3': 'grey'},
# hover_name='SECC',
# hover_data = eti,
# title = 'TCE seccional (7 indicadores con transformación log)')
# fig.update_geos(fitbounds="locations",
# visible=False,
# showcountries=True,
# countrycolor="Black", showsubunits=True,
# subunitcolor="Blue")
# fig.show()
# fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_mapa_secc_ind7_tf.html")
#mapa de atipicidad
# eti=['NOMBRE_ESTADO','NOMBRE_MUNICIPIO', 'DTO','LNE', 'Densidad_LNE', 'Razon_LNE_PE', 'TC_LNE_2019', 'Coef_Var_LNE', 'Var_Prop_LNE', 'Autocorr_LNE', 'CP1 (ICE principal)', 'CP2 (segundo ICE)', 'CP3 (tercer ICE)', 'TCE_seccional', 'Atipicidad']
# fig = px.choropleth(resultados_ind7_tf, geojson=secciones_s,
# locations='ID', featureidkey="properties.id",
# color='Atipicidad',
# color_discrete_sequence= px.colors.sequential.Reds,
# hover_name='SECC',
# hover_data = eti,
# title = 'Mapa secciones electorales atípicas (7 indicadores con transformación log)')
# fig.update_geos(fitbounds="locations",
# visible=False,
# showcountries=True,
# countrycolor="Black",
# showsubunits=True,
# subunitcolor="Blue")
# #fig.show()
# fig.write_html("C:/Users/miguel.alvarez/Google Drive/INFOTEC/Proyecto/Code-Data/Secc/4_Resumen-Mapas/Pyplotly_mapa_secc_Atip_ind7_tf.html")